1. Field of Invention
The present invention pertains to the field of software systems. More particularly, this invention relates to providing task-specific flexible bindings in a software system.
2. Art Background
Software programs executing on a computer system commonly make use of resources available with the computer system. Such resources commonly include resources such as files, data bases, and application programs. Such resources also commonly include resources such as storage devices, printers, communication devices, and display devices to name only a few example devices. Such resources may be local resources of the computer system or may be remote resources accessible via a network connection to one or more other computer systems. A software program executing on the computer system that accesses resources is hereinafter referred to as a task.
Typically, a task refers to a resource using a resource name. The resource name is usually associated or bound to the resource. Prior computer systems typically include an operating system that binds the resource name used by a task to an internal representation for the corresponding resource. The internal representation usually provides information that enables the operating system to identify the corresponding resource. For example, the Unix operating system provides bindings between file names used by tasks and inode numbers which are used to identify the physical locations of the corresponding files on a physical storage media.
Unfortunately, such inflexible name bindings provided in prior systems usually limit the ability of tasks to access resources in a distributed system that includes multiple computer systems. In addition, such prior systems usually require extensive coordination of global resource names across distributed computer systems. Moreover, such prior systems usually limit the ability of resources to be dynamically added and removed from availability to the tasks.